package com.hk.commons.jackson;

import com.hk.commons.jackson.annotations.SensitiveField;
import com.hk.commons.util.StringUtils;

/**
 * @author Kevin
 * @date 2024-11-21 11:24
 */
public enum SensitiveTypeEnum {

    /**
     * 普通
     */
    NORMAL {
        @Override
        public String format(String value, SensitiveField field) {
            return value;
        }
    },

    /**
     * 密码
     */
    PASSWORD {
        @Override
        public String format(String value, SensitiveField field) {
            return "***********";
        }
    },

    /**
     * 手机号
     */
    PHONE {
        @Override
        public String format(String value, SensitiveField field) {
            return StringUtils.phoneMiddleMosaic(value);
        }
    };

    public abstract String format(String value, SensitiveField field);
}
